#include "threadPool.hpp"
#include "task.hpp"
#include <unistd.h>

int main()
{
    srand((unsigned int)time(nullptr)); // 随机数种子

    threadPool<task> pool; // 创建线程池,线程池一创建，其中的线程就立刻开始运行

    // 主线程不断往线程池中派发任务
    string oper("+-*/%");
    while (true)
    {
        sleep(1); // 主线程休眠的1秒钟内，线程池中的线程从空队列中读取数据，全部被挂起

        int x = rand() % 10;            // 左操作数
        int y = rand() % 10;            // 右操作数
        int pi = rand() % oper.size();  // 操作符索引
        char op = oper[pi];             // 操作符
        task newtask(x, y, op, mymath); // 构建任务
        pool.push(newtask);             // 生产任务
        cout << "主线程生产了一个任务" << newtask.whatTodo() << endl;
    }

    return 0;
}